草庐IT

javascript oop、instanceof 和基类

全部标签

swift - 为什么 Swift 中没有通用基类?

文档说NOTESwiftclassesdonotinheritfromauniversalbaseclass.Classesyoudefinewithoutspecifyingasuperclassautomaticallybecomebaseclassesforyoutobuildupon.”ExcerptFrom:AppleInc.“TheSwiftProgrammingLanguage.”iBooks.这对我来说没有多大意义。Objective-C有一个通用基类是有原因的,同样的原因应该适用于Swift,是吗?NSObject管理保留/释放语义,这是isEqual:的默认实现,h

c# - 为什么 .NET 异常不适用于接口(interface)而不是基类?

.Net框架的try-catch实现只允许您捕获继承自基类“System.Exception”的类型。为什么这不能是诸如“System.IException”之类的接口(interface)?用例我们在每个继承自System.Exception的API中使用自定义基类。这只会在异常被记录后抛出,因此我们可以很容易地避免通过类似的方式重新记录:try{//Dosomething.}catch(LoggedException){//Alreadyloggedsojustrethrow.throw;}catch(Exceptionex){//TODO:Logexception.throwne

c# - 如何在 C# 中隐藏(删除)基类的方法?

这个问题在这里已经有了答案:C#-Canpubliclyinheritedmethodsbehidden(e.g.madeprivatetoderivedclass)(10个答案)关闭7年前。问题的本质是,给定这样的类层次结构:classA{protectedvoidMethodToExpose(){}protectedvoidMethodToHide(objectparam){}}classB:A{newprivatevoidMethodToHide(objectparam){}protectedvoidNewMethodInB(){}}classC:B{publicvoidDoSo

c# - 为什么将方法移入基类后,性能会缓慢下降?

我正在用C#写不可变的二叉树的不同实现,我希望我的树从基类继承一些通用方法。不幸的是,从基类派生的类非常慢。非派生类表现良好。这是AVL树的两个几乎相同的实现,以进行演示:AvlTree:http://pastebin.com/V4WWUAyTDerivedAvlTree:http://pastebin.com/PussQDmN这两棵树具有完全相同的代码,但是我已经在基类中移动了DerivedAvlTree.Insert方法。这是一个测试应用程序:usingSystem;usingSystem.Collections.Generic;usingSystem.Diagnostics;us

c# - 在基类中声明子类;坏不坏?

最近我发现一些代码将子类型声明为基类中的枚举。这是一个简单的例子:publicenumEmployeeType{Manager,Secretary}publicclassEmployee{publicstringCode{get;set;}publicEmployeeTypeType{get;set;}}publicclassManager:Employee{publicvoidManage(){//Managing}}publicclassSecretary:Employee{publicvoidSetMeeting(){//Settingmeeting}}根据我的开发经验,我写了a

c# - 如何使用 Microsoft Fakes 获取基类的垫片?

classParent{publicstringName{get;set;}}classChild:Parent{publicstringaddress{get;set;}}[TestClass]classTestClass{[TestMethod]publicvoidTestMethod(){varc=newFakes.Child();c.addressGet="foo";//Icanseethatc.NameGet="bar";//ThisDOESNOTexists}}如何在上面的代码示例中设置“名称”? 最佳答案 为Paren

C# 在自己的构造函数之后调用基类的构造函数?

如何在调用自己的构造函数之后调用基类的构造函数?问题是,基类的构造函数调用了一个抽象方法(在子类中重写),它需要访问变量x,在子类的构造函数中初始化?简短示例代码:abstractclassBaseClass{protectedstringmy_string;protectedabstractvoidDoStuff();publicBaseClass(){this.DoStuff();}}classSubClass:BaseClass{privateTextBoxtb;publicSubClass():base(){this.my_string="Shortsentence.";}pr

c# - C#中从基类调用重写的方法

给定以下C#类定义和代码:publicclassBaseClass{publicvirtualvoidMyMethod(){...dosomething...}}publicclassA:BaseClass{publicoverridevoidMyMethod(){...dosomethingdifferent...}}publicclassB:BaseClass{publicoverridevoidMyMethod(){...dosomethingdifferent...}}publicclassAnotherObject{publicAnotherObject(BaseClasss

c# - 如何确定属性是从基类继承还是在派生类中声明?

我有一个派生自抽象类的类。获取派生类的类型我想找出哪些属性是从抽象类继承的,哪些是在派生类中声明的。publicabstractclassBaseMsClass{publicstringCommonParam{get;set;}}publicclassMsClass:BaseMsClass{publicstringId{get;set;}publicstringName{get;set;}publicMsClass(){}}varmsClass=newMsClass{Id="1122",Name="Somename",CommonParam="paramofthebaseclass"}

c# - 从基类的静态方法获取派生类类型

我想从其基类​​的静态方法中获取派生类的类型。如何实现?谢谢!classBaseClass{staticvoidPing(){Typet=this.GetType();//shouldbeDerivedClass,butitisnotpossiblewithastaticmethod}}classDerivedClass:BaseClass{}//somewhereinthecodeDerivedClass.Ping(); 最佳答案 这可以使用curiouslyrecurringtemplatepattern轻松完成classBas